package com.sizu.web;


import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.sizu.common.dto.PurchaseListDto;
import com.sizu.common.dto.ReturnListDto;
import com.sizu.common.dto.TReturnListZyxDto;
import com.sizu.common.vo.ResultEntity;
import com.sizu.entity.TPurchaseList;
import com.sizu.entity.TReturnList;
import com.sizu.entity.TReturnListGoods;
import com.sizu.entity.TReturnListZyx;
import com.sizu.service.SyncService;
import com.sizu.service.impl.TReturnListGoodsServiceImpl;
import com.sizu.service.impl.TReturnListServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author Mht
 * @since 2020-02-21
 */
@RestController
@RequestMapping("/purchase/tReturnList")
public class TReturnListController {

    @Autowired
    private TReturnListServiceImpl tReturnListServiceImpl;

    @Autowired
    private TReturnListGoodsServiceImpl tReturnListGoodsServiceImpl;

    @Autowired
    private SyncService syncService;

    //查询出所有的退货订单列表
    @RequestMapping("/list1")
    public ResultEntity list1(){
        List<TPurchaseList> list = tReturnListServiceImpl.selectList1();
        return ResultEntity.ok(list);
    }

    //根据退货单号查询出所有的订单
    @RequestMapping("/list")
    public ResultEntity list(TReturnListZyxDto tReturnListZyxDto){
        TReturnListZyx tReturnListZyx=new TReturnListZyx();
        BeanUtils.copyProperties(tReturnListZyxDto,tReturnListZyx);
        List<TReturnListZyx> tReturnLists = tReturnListServiceImpl.getReturnListZyx(tReturnListZyx);
        return ResultEntity.ok(tReturnLists);
    }

    //做退货订单和退货订单详情添加的方法
    @RequestMapping("/returnAdd")
    public ResultEntity purchaseAdd(ReturnListDto returnListDto){

        TReturnList returnList = new TReturnList();
        BeanUtils.copyProperties(returnListDto,returnList);
        tReturnListServiceImpl.insert(returnList);//向退货订单表里添加数据
        returnListDto.setId(returnList.getId());
        syncService.syncReturn(returnListDto);
        //获取新添加进去的id
        if(null!=returnListDto.getReturnListGoodsJSON()){
            List<TReturnListGoods> tReturnListGoods = JSON.parseArray(returnListDto.getReturnListGoodsJSON(), TReturnListGoods.class);
            for (TReturnListGoods tReturnListGood : tReturnListGoods) {
                tReturnListGood.setReturnListId(returnList.getId());
                    tReturnListGoodsServiceImpl.insert(tReturnListGood);
            }
        }
        return ResultEntity.ok();
    }

    /**
     * 返回随机编号
     * @return
     */
    @RequestMapping("/number")
    public ResultEntity getOrderNumber(){
        return ResultEntity.ok("获取成功","TH"+System.currentTimeMillis());
    }


}
